package com.cardone.platform.configuration.service;

import java.util.List;
import java.util.Map;

import com.cardone.common.cache.support.CacheEvictSupport;
import com.cardone.common.dto.PaginationDto;
import com.cardone.platform.configuration.dto.SiteDto;
import com.cardone.platform.configuration.dto.SiteUrlDto;

/**
 * 站服务
 * 
 * @author yaoht
 */
public interface SiteService extends CacheEvictSupport {
	/**
	 * spring bean id
	 */
	String BEAN_ID = "com.cardone.platform.configuration.service.SiteService";

	/**
	 * 保存:站点
	 * 
	 * @param saveSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	SiteDto saveSiteByIdOrCode(SiteDto saveSite);

	/**
	 * 保存:站点
	 * 
	 * @param saveSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	SiteDto saveSiteByName(SiteDto saveSite);

	/**
	 * 删除:站点
	 * 
	 * @param deleteSite
	 *            站点对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteByCode(SiteDto deleteSite);

	/**
	 * 删除:站点
	 * 
	 * @param deleteSite
	 *            站点对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteByIds(SiteDto deleteSite);

	/**
	 * 设置:站点
	 * 
	 * @param updateSite
	 *            站点对象
	 * 
	 * @return 影响行数
	 */
	int updateSiteByCode(SiteDto updateSite);

	/**
	 * 设置:站点
	 * 
	 * @param updateSite
	 *            站点对象
	 * 
	 * @return 影响行数
	 */
	int updateSiteByIds(SiteDto updateSite);

	/**
	 * 读取:站点
	 * 
	 * @param readSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	Integer readSiteByCodeNqId(SiteDto readSite);

	/**
	 * 读取:站点
	 * 
	 * @param readSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	Integer readSiteByName(SiteDto readSite);

	/**
	 * 查询:站点
	 * 
	 * @param findSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	SiteDto findSiteByCode(SiteDto findSite);

	/**
	 * 查询:站点
	 * 
	 * @param findSite
	 *            站点对象
	 * 
	 * @return 站点对象
	 */
	SiteDto findSiteById(SiteDto findSite);

	/**
	 * 查询:站点
	 * 
	 * @param findListSite
	 *            站点对象
	 * 
	 * @return 站点对象集合
	 */
	List<SiteDto> findListSiteByCode(SiteDto findListSite);

	/**
	 * 查询:站点
	 * 
	 * @param findListSite
	 *            站点对象
	 * 
	 * @return 站点对象集合
	 */
	List<SiteDto> findListSiteByName(SiteDto findListSite);

	/**
	 * 分页:站点
	 * 
	 * @param paginationSite
	 *            站点对象
	 * 
	 * @return 站点分页对象
	 */
	PaginationDto<SiteDto> paginationSiteByCode(SiteDto paginationSite);

	/**
	 * 分页:站点
	 * 
	 * @param paginationSite
	 *            站点对象
	 * 
	 * @return 站点分页对象
	 */
	PaginationDto<Map<String, Object>> paginationSiteByName(SiteDto paginationSite);

	/**
	 * 保存:站点信息位置
	 * 
	 * @param saveSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	SiteUrlDto saveSiteUrlByIdOrCode(SiteUrlDto saveSiteUrl);

	/**
	 * 保存:站点信息位置
	 * 
	 * @param saveSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	SiteUrlDto saveSiteUrlByName(SiteUrlDto saveSiteUrl);

	/**
	 * 删除:站点信息位置
	 * 
	 * @param deleteSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteUrlByCode(SiteUrlDto deleteSiteUrl);

	/**
	 * 删除:站点信息位置
	 * 
	 * @param deleteSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 影响行数
	 */
	int deleteSiteUrlByIds(SiteUrlDto deleteSiteUrl);

	/**
	 * 设置:站点信息位置
	 * 
	 * @param updateSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 影响行数
	 */
	int updateSiteUrlByCode(SiteUrlDto updateSiteUrl);

	/**
	 * 设置:站点信息位置
	 * 
	 * @param updateSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 影响行数
	 */
	int updateSiteUrlByIds(SiteUrlDto updateSiteUrl);

	/**
	 * 读取:站点信息位置
	 * 
	 * @param readSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	Integer readSiteUrlByCodeNqId(SiteUrlDto readSiteUrl);

	/**
	 * 读取:站点信息位置
	 * 
	 * @param readSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	Integer readSiteUrlByName(SiteUrlDto readSiteUrl);

	/**
	 * 查询:站点信息位置
	 * 
	 * @param findSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	SiteUrlDto findSiteUrlByCode(SiteUrlDto findSiteUrl);

	/**
	 * 查询:站点信息位置
	 * 
	 * @param findSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象
	 */
	SiteUrlDto findSiteUrlById(SiteUrlDto findSiteUrl);

	/**
	 * 查询:站点信息位置
	 * 
	 * @param findListSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象集合
	 */
	List<SiteUrlDto> findListSiteUrlByCode(SiteUrlDto findListSiteUrl);

	/**
	 * 查询:站点信息位置
	 * 
	 * @param findListSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置对象集合
	 */
	List<SiteUrlDto> findListSiteUrlByName(SiteUrlDto findListSiteUrl);

	/**
	 * 分页:站点信息位置
	 * 
	 * @param paginationSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置分页对象
	 */
	PaginationDto<SiteUrlDto> paginationSiteUrlByCode(SiteUrlDto paginationSiteUrl);

	/**
	 * 分页:站点信息位置
	 * 
	 * @param paginationSiteUrl
	 *            站点信息位置对象
	 * 
	 * @return 站点信息位置分页对象
	 */
	PaginationDto<Map<String, Object>> paginationSiteUrlByName(SiteUrlDto paginationSiteUrl);
}